package com.rslai.commons.validator.jsonvalidator.validators;

import java.math.BigDecimal;

/**
 * JSON校验器，数字校验器
 */
public abstract class NumericValidator extends Validator {
    @Override
    public void doValidate(Object object) {
        if (object instanceof Integer) {
            validateInteger((Integer) object);
        } else if (object instanceof Long) {
            validateLong((Long) object);
        } else {
            validateBigDecimal(new BigDecimal(object.toString()));
        }
    }

    /**
     * Long校验
     * @param longValue longValue
     */
    protected abstract void validateLong(long longValue);

    /**
     * Integer校验
     * @param intValue intValue
     */
    protected abstract void validateInteger(int intValue);

    /**
     * BigDecimal校验
     * @param bigDecimalValue bigDecimalValue
     */
    protected abstract void validateBigDecimal(BigDecimal bigDecimalValue);
}
